package com.java.mytest_ysy.c.demo1;

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

/*一个Set集合中，存入很多身份证数据，
但是有些身份证是用户随意输入的错误号码，请使用代码从集合中，将这些错误代码删除。
(1)定义Set集合，存入多个字符串
  (2)删除集合中不满足身份证号码的数据
    身份证要求：
	- 长度必须18位
- 数字0不能开头
  - 除了最后一位，中间不允许有数字
  - 最后一位可以是数字或者Xx
   (3)然后利用迭代器遍历集合元素并输出
*/
public class Test {
    public static void main(String[] args) {
        //1、创建一个Set集合中，存入很多身份证数据
        Set<String> idCard=new HashSet<>();
        //2、用户从键盘输入
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入身份证号：");
        while (true) {
            String userId=sc.next();
            if (userId.equals("end")) {
                break;
            }else {
                //2.1对用户输入的数据进行判断
                if (userId.matches("[1-9]\\d{16}\\w")){
                    idCard.add(userId);
                    System.out.print("继续输入：");
                }else {
                    System.out.print("格式有误，请重新输入");
                }
            }
        }
        //遍历输出
        for (String s : idCard) {
            System.out.println(s);
        }
    }
}
